package br.unipar.blog.view.action.autenticacao;

import br.unipar.blog.view.action.AbstractUniparAction;
import br.unipar.blog.controller.autenticacao.LoginVo;
import org.springframework.util.Assert;

public class AutenticacaoAction extends AbstractUniparAction {

    private LoginVo vo = createVo();

    public void setVo(LoginVo vo) {
        this.vo = vo;
    }

    public LoginVo getVo() {
        return vo;
    }

    public void limpar() {
        vo = createVo();
    }
    
    public LoginVo createVo() {
        return new LoginVo();
    }
    
    public String acessar() {
        try {
            Assert.notNull(vo, "Usuario nao pode ser recuperado.");
            Assert.hasText(vo.getEmail(), "O email é obrigatório.");
            Assert.hasText(vo.getSenha(), "A senha é obrigatória.");
        } catch(IllegalArgumentException e) {
            setMensagem(e.getMessage());
            return "index";
        }
        
        putSession(USUARIO_SESSION, vo);
        
        return "pages_principal";
    }
    
}
